home *** CD-ROM | disk | FTP | other *** search
- (* ******************************************************************** *)
- (* ExeHex - Dump a EXE file into a HEX file. *)
- (* Author - Victor Lee , Queen's University, Kingston, Ontario, CANADA *)
- (* Network id - VIC at QUCDN *)
- (* Date - 1986 Feb 12 *)
- (* - 1988 April 28 *)
- (* Note : See HexExe to convert HEX file into EXE file. *)
- (* ******************************************************************** *)
- Program ExeHex ;
- type blocks = array [1..128] of char ;
- S2 = string[2] ;
- var
- i : byte ;
- ExeName,HexName : string[14] ;
- FN : string[8] ;
- abyte : byte ;
- Afile : file of byte ;
- Bfile : Text ;
- count,Rcount : integer ;
- label exit ;
-
- function hex(num:byte) : S2;
- var digit :byte ;
- hex1 : char ;
- begin (* hex *)
- digit := num and $0F ;
- if digit > 9 then digit := digit + 7 ;
- hex1 := chr($30 + digit) ;
- digit := (num and $F0) div $10 ;
- if digit > 9 then digit := digit + 7 ;
- hex := concat(chr($30+digit),hex1);
- end;
-
-
- Begin (* hex Dump *)
- Writeln('Enter Name of EXE File to Dump into HEX file ');
- Readln(FN);
- ExeName := FN + '.EXE' ;
- HexName := FN + '.HEX' ;
- Assign (Afile,ExeName);
- Assign (Bfile,HexName);
- Reset(Afile);
- Rewrite(Bfile);
- count := 0 ;
- Rcount := 0 ;
- Writeln('Converting File: ',ExeName,' file size =',FileSize(Afile));
- Writeln(' 32 bytes make a 64 byte Record .');
- Write (' Record count = ');
- While True Do
- Begin (* write a line *)
- For i := 1 to $20 do
- Begin (* dump file *)
- if Eof(Afile) then goto exit;
- read(Afile,abyte);
- count := count + 1 ;
- (* write(hex(abyte)); *)
- write(Bfile,hex(abyte));
- End;
- Writeln(Bfile);
- Rcount := Rcount + 1 ;
- Write(RCount ,' ');
- End ; (* write a line *)
- exit :
- Close(Bfile) ;
- Writeln(' ');
- Writeln('Number of 64 byte records =',Rcount);
- Writeln('New file ',HexName,' created. ');
- End. (* hex Dump *)